Date: Tue, 10 Dec 1996 22:50:38 GMT
Server: NCSA/1.4.2
Content-type: text/html
Last-modified: Fri, 18 Oct 1996 18:44:03 GMT
Content-length: 7679

<html>
<head>
	<TITLE>Brian Kris Grant: Work Background</TITLE>
</head>

<body bgcolor="#FFFFFF" TEXT="#004535" LINK="#EE0000" VLINK="#952045" ALINK="#000000">

<font color="#FF4444"><h1>Work Background</h1></font>

<h3>Phased Compilation</h3>

<p>
<!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><!WA0><a href="http://www.cs.washington.edu"><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><!WA1><img border=0 align=right
src="http://www.cs.washington.edu/general/sptm_s.gif"></a> I'm in
my third year of graduate school at the <!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><!WA2><a
href="http://www.washington.edu">UW</a>.  I am now starting to explore
the new area of <!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><!WA3><a href="http://www.cs.washington.edu/homes/grant/phasedcomp/index.html">phased
compilation</a>, with <!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><!WA4><a
href="http://www.cs.washington.edu/people/faculty/eggers.html">Susan
Eggers</a> as my advisor, and am part of the <!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><!WA5><a
href="http://www.cs.washington.edu/research/projects/unisw/DynComp/www/">UW
Dynamic Compilation Group</a>.  Phased compilation encompasses such
ideas as <!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><!WA6><a
href="http://www.lpac.ac.uk/SEL-HPC/Articles/GeneratedHtml/functional.partial.html">partial
evaluation</a>, incremental specialization, <!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><!WA7><A
HREF="http://www.cs.washington.edu:80/homes/pardo/rtcg.d/index.html">run-time
code generation</a>, and <!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><!WA8><a
href="http://www.cs.washington.edu/research/projects/unisw/DynComp/www/">dynamic
compilation</a> (these concepts overlap).  I plan to do my generals
and my thesis in this area, and hope to graduate around the time our
<!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><!WA9><a href="http://www.cs.washington.edu/building/">new building</a> is
completed (or soon after).

<h3>Other Interests</h3>

<p>In addition to phased compilation, lately I've been interested in
<!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><!WA10><a
href="http://www.cs.washington.edu/research/projects/spin/www/">extensible
operating systems</a> and <!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><!WA11><a
href="http://www-dsg.stanford.edu/DSGHomePage.html">distributed
systems</a>.  This past spring, I read up on techniques for creating
and exploiting <!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><!WA12><a href="http://www.micro29.org/">instruction-level
parallelism (ILP)</a>.  Many of the papers came from the <!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><!WA13><A
HREF="http://www.crhc.uiuc.edu/Impact/">IMPACT</a> group at <!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><!WA14><a
href="http://www.uiuc.edu">UIUC</a>.

<p>In the past I've been interested in <!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><!WA15><A
HREF="http://www.umiacs.umd.edu/~dbader/sites.html">parallel</a>
programming languages and environments, parallel algorithms, and <!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><!WA16><a
href="http://csep1.phy.ornl.gov/csep.html">scientific computing</a>.
I'm also concerned about the <!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><!WA17><a href="http://www.cs.washington.edu/homes/grant/society.html">impact of
computing technologies on society</a>.

<h3>Collective Communication</h3>

<p>In spring 1995, I finished my quals project under <!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><!WA18><a
href="http://www.cs.washington.edu/people/faculty/ladner.html">Richard
Ladner</a>, <em>Design and Analysis of Collective-Communication
Primitives</em>.  I have a few more ideas that I'm exploring in this
area and I should have a paper available later this year.

<h3>GAPP</h3>

<p>In my second year, I also did a <!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><!WA19><a href="http://www.cs.washington.edu/homes/grant/552proj.html">cool
project</a> with <!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><!WA20><a
href="http://www.cs.washington.edu/homes/eric">Eric Anderson</a> for
the <!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><!WA21><a
href="http://www.cs.washington.edu/education/courses/552/">distributed
and parallel systems course</a>.  It was a general-purpose,
user-programmable, kernel-resident packet processor (boy, what a
mouthful!).  It was a good idea, but its performance suffered a little
due to a massive, sparse switch statement that was converted to a
series of tests and branches by the compiler.  We never had time to
rewrite it and collect some real times, but we're sure they would have
been great.  Actually, dynamic compilation would have been ideal for
this application.  We also had some other ideas for optimizing the
computation of which packet processors should execute on a given
packet, but development on <!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><!WA22><a
href="http://www.cs.washington.edu/research/projects/spin/www/papers/Usenix96/extprotarch.ps">SPIN's
networking framework</a> was beginning by the end of the quarter, so
we didn't bother to pursue it further.

<h3>Teaching</h3>

<p>During my first year at UW, when my <!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><!WA23><a
href="http://www.cs.washington.edu/homes/map/office/225.html">office</a>
was in Sieg, I was a teaching assistant, first for <!WA24><!WA24><!WA24><!WA24><!WA24><!WA24><!WA24><!WA24><!WA24><!WA24><a
href="http://www.cs.washington.edu/education/courses/142/">CSE/ENGR-142</a>,
the first-semester programming course (when it was in Ada), then for
<!WA25><!WA25><!WA25><!WA25><!WA25><!WA25><!WA25><!WA25><!WA25><!WA25><a
href="http://www.cs.washington.edu/education/courses/451/CurrentQuarter/">CSE-451</a>,
the undergraduate operating systems course.  Now, my office is in <!WA26><!WA26><!WA26><!WA26><!WA26><!WA26><!WA26><!WA26><!WA26><!WA26><a
href="http://www.cs.washington.edu/homes/map/chateau.html">The
Chateau</a>, and I am supported by a <!WA27><!WA27><!WA27><!WA27><!WA27><!WA27><!WA27><!WA27><!WA27><!WA27><A
HREF="http://stis.nsf.gov/ehr/gerd/gradfell.htm">NSF Graduate
Fellowship</A>.

<h3>Lawrence Livermore National Laboratory</h3>

<p><!WA28><!WA28><!WA28><!WA28><!WA28><!WA28><!WA28><!WA28><!WA28><!WA28><a href="http://www.llnl.gov"><!WA29><!WA29><!WA29><!WA29><!WA29><!WA29><!WA29><!WA29><!WA29><!WA29><img border=0 align=left src="http://www.cs.washington.edu/homes/grant/llnl.gif"></a>
I spent three summers at <!WA30><!WA30><!WA30><!WA30><!WA30><!WA30><!WA30><!WA30><!WA30><!WA30><a href="http://www.llnl.gov">Lawrence
Livermore National Laboratory</a>.  My first summer at LLNL, I studied
cluster message-passing systems, mainly <!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><!WA31><a
href="http://www.epm.ornl.gov/pvm/">PVM</a>.  During the next two
summers, while working on my main project, a parallel climate model, I
looked into <!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><!WA32><a href="http://www.mcs.anl.gov/mpi/index.html">MPI</a>,
even attending one of the MPI Forums in Dallas.  I gave a <!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><!WA33><a
href="http://www.cs.washington.edu/homes/grant/talks/llnl-mpi-class.ps.Z">tutorial on MPI</a> at LLNL, and
later <!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><!WA34><a href="http://www.cs.washington.edu/homes/grant/talks/boeing-mpi.ps.Z">another</a> at Boeing Computing
Services.

<!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><!WA35><a href="http://www.purdue.edu"><!WA36><!WA36><!WA36><!WA36><!WA36><!WA36><!WA36><!WA36><!WA36><!WA36><img border=0 align=right src="http://www.cs.washington.edu/homes/grant/bkg-kid.gif"></a>

<p>The climate model I worked on was a parallel global climate model
called the <!WA37><!WA37><!WA37><!WA37><!WA37><!WA37><!WA37><!WA37><!WA37><!WA37><a href="http://www.cs.washington.edu/homes/grant/csmg.html">Earth System Model (ESM)</a>.  The ESM
is a framework for supporting parallel global climate modeling.  The
requirements of the ESM project are that the model be transportable,
scalable, and modular.  The transportability of the code was deemed to
be crucial, as this would allow the group to take advantage of the
latest, most powerful multicomputers available.  I ported the code to
MPI, instrumented the code for post-mortem performance evaluation
using <!WA38><!WA38><!WA38><!WA38><!WA38><!WA38><!WA38><!WA38><!WA38><!WA38><a
href="http://netlib2.cs.utk.edu/paragraph/index.html">ParaGraph</a>,
<!WA39><!WA39><!WA39><!WA39><!WA39><!WA39><!WA39><!WA39><!WA39><!WA39><a href="http://www.mcs.anl.gov/home/lusk/upshot/">Upshot</a>, <!WA40><!WA40><!WA40><!WA40><!WA40><!WA40><!WA40><!WA40><!WA40><!WA40><a
href="http://bugle.cs.uiuc.edu/Pablo.html">Pablo</a>, or some of my
own tools, and worked on building a library of portable
collective-communication routines.

<h3>Purdue</h3>

<p> I got my undergraduate degree in <!WA41><!WA41><!WA41><!WA41><!WA41><!WA41><!WA41><!WA41><!WA41><!WA41><a
href="http://www.cs.purdue.edu">computer science</a> and <!WA42><!WA42><!WA42><!WA42><!WA42><!WA42><!WA42><!WA42><!WA42><!WA42><a
href="http://www.math.purdue.edu">mathematics</a> at <!WA43><!WA43><!WA43><!WA43><!WA43><!WA43><!WA43><!WA43><!WA43><!WA43><a
href="http://www.purdue.edu">Purdue University</a>.  My senior year I
was president of the <!WA44><!WA44><!WA44><!WA44><!WA44><!WA44><!WA44><!WA44><!WA44><!WA44><a
href="http://www.cs.purdue.edu/acm/acm.html">Purdue Student Chapter of
the ACM</a>.  I also helped start a <!WA45><!WA45><!WA45><!WA45><!WA45><!WA45><!WA45><!WA45><!WA45><!WA45><a
href="http://www.cs.purdue.edu/upe/upe.html">UPE chapter</a>, and
served as the chapter's second president.  Additionally, I helped to
resurrect the defunct <!WA46><!WA46><!WA46><!WA46><!WA46><!WA46><!WA46><!WA46><!WA46><!WA46><a
href="http://www.math.purdue.edu/~mathclub/">math club</a> by serving
as its treasurer, then vice president, and by helping to make it a
student chapter of the <!WA47><!WA47><!WA47><!WA47><!WA47><!WA47><!WA47><!WA47><!WA47><!WA47><a href="http://www.maa.org">Mathematical
Association of America</a>.

<br><br clear=all>

<p><center>
<small>
<em>Department of Computer Science and Engineering</em><br>
<em>University of Washington</em><br>
<em>Box 352350</em><br>
<em>Seattle, WA 98195-2350</em><br>
<em>Office: Guggenheim Annex 115 (<!WA48><!WA48><!WA48><!WA48><!WA48><!WA48><!WA48><!WA48><!WA48><!WA48><a
href="http://www.cs.washington.edu/homes/map/chateau.html">The
Chateau</a>)</em><br>
<em>Phone: (206) 616-1854</em> <br>
<em>Fax: (206) 543-2969</em> <br><br>
At school, I use a <!WA49><!WA49><!WA49><!WA49><!WA49><!WA49><!WA49><!WA49><!WA49><!WA49><a href="http://www.sgi.com">SGI Indy</a>.</small><br>
<!WA50><!WA50><!WA50><!WA50><!WA50><!WA50><!WA50><!WA50><!WA50><!WA50><a href="http://www.sgi.com"><!WA51><!WA51><!WA51><!WA51><!WA51><!WA51><!WA51><!WA51><!WA51><!WA51><img border=0  src="http://www.cs.washington.edu/homes/grant/sgi.gif"></a>
</center>

<h5><!WA52><!WA52><!WA52><!WA52><!WA52><!WA52><!WA52><!WA52><!WA52><!WA52><img width=100% height=5 border=0 src="http://www.cs.washington.edu/homes/grant/dot-green.gif"><br>
<!WA53><!WA53><!WA53><!WA53><!WA53><!WA53><!WA53><!WA53><!WA53><!WA53><a href="http://www.cs.washington.edu/homes/grant/"><!WA54><!WA54><!WA54><!WA54><!WA54><!WA54><!WA54><!WA54><!WA54><!WA54><img align=right src="http://www.cs.washington.edu/homes/grant/back-green.gif" border=0></a>
Last updated August 30, 1996.<br>
<!WA55><!WA55><!WA55><!WA55><!WA55><!WA55><!WA55><!WA55><!WA55><!WA55><a href="mailto:grant@cs.washington.edu">Brian Kris Grant (<em>grant@cs.washington.edu</em>)</a>
</h5>
</body>
</html>
